/**
 * @file log_utils.h
 * @brief 增强日志工具头文件
 * 
 * 声明增强日志工具相关的函数。
 */

#ifndef LOG_UTILS_H
#define LOG_UTILS_H

#include "esp_log.h"
#include <stdarg.h>
#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 初始化日志系统
 */
void log_utils_init(void);

/**
 * @brief 打印带时间戳的日志
 * 
 * @param tag 日志标签
 * @param level 日志级别
 * @param format 格式化字符串
 * @param ... 可变参数
 */
void log_utils_printf(const char *tag, esp_log_level_t level, const char *format, ...);

/**
 * @brief 安全内存分配
 * 
 * @param size 分配大小
 * @param tag 标签（用于日志）
 * @return void* 分配的内存指针，失败返回NULL
 */
void* mem_utils_malloc(size_t size, const char *tag);

/**
 * @brief 安全内存释放
 * 
 * @param ptr 内存指针
 * @param tag 标签（用于日志）
 */
void mem_utils_free(void **ptr, const char *tag);

#ifdef __cplusplus
}
#endif

#endif // LOG_UTILS_H